package com.kakarote.admin.service;

import com.kakarote.admin.entity.BO.AdminRouterSaveBO;
import com.kakarote.admin.entity.BO.AdminRouterSaveRequestBO;
import com.kakarote.admin.entity.BO.AdminRouterTitleUpdateBO;
import com.kakarote.core.feign.admin.entity.AdminRouter;
import com.kakarote.core.servlet.BaseService;

import java.util.List;

/**
 * 全局路由配置表 服务类
 *
 * @author zjj
 * @since 2022-08-08
 */
public interface IAdminRouterService extends BaseService<AdminRouter> {

    /**
     * 保存路由配置
     *
     * @param saveBO 路由配置信息
     * @return
     */
    AdminRouter saveRouter(AdminRouterSaveBO saveBO);

    /**
     * 根据源模块 ID 修改路由标题
     *
     * @param updateBO bo
     */
    void updateTitleByModuleId(AdminRouterTitleUpdateBO updateBO);

    /**
     * 批量保存路由配置
     *
     * @param requestBO 路由配置信息
     */
    void batchSaveRouter(AdminRouterSaveRequestBO requestBO);

    /**
     * 删除路由
     *
     * @param applicationId 应用 ID
     */
    void deleteAll(Long applicationId);

    /**
     * 删除路由
     *
     * @param id ID
     */
    void deleteRouter(Long id);

    /**
     * 查询应用的路由信息
     *
     * @param applicationId 应用 ID
     * @return
     */
    List<AdminRouter> listRouter(Long applicationId);
}
